public class Gainian {
    //在java中，栈（stack）是由编译器自动分配和释放的一块内存区域，主要是用于存放一些基本类型（如int，float等）的变量，指令代码，常量及对象句柄（也就是对象的引用地址）。
    //栈内存实际上就是满足先进后出的性质的数学或数据结构，栈内存的操作方式类似于数据结构中的栈（仅在表尾进行插入或删除操作的线性表）。
    //栈的优势在于存取速度较快，仅次于寄存器，栈中的数据还可以共享，当超过变量的作用域后，java会自动释放掉为该变量所分配的内存空间。
    //缺点是存在栈中的数据大小与生存期必须是确定的，缺乏灵活性。
    //堆（heap）是一个程序运行分配的内存区域，堆内存实际上指的就是有限队列的一种数据结构。
    //在java中，构建对象时所需要的内存从堆中分配，这些对象通过new指令"显示"建立，这种分配方式类似于数据结构中的链表。
    //堆内存在使用完毕后，是由垃圾回收（Garbage Collection，GC）器“隐式”回收的。
    //堆的优势在动态的分配内存大小，可以“按需分配”其生存期也不必事先告诉编译器，在使用完毕后，java的垃圾收集器会自动收走这些不再使用的内存块。
    //缺点是要在运动时才动态分配内存，相比于栈内存，他的存取速度较慢。


}
